package cn.maiyar.redis.annotation;

import cn.maiyar.redis.config.CacheConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * Cache 配置类
 *
 * @author c.c
 **/
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
@Target({java.lang.annotation.ElementType.TYPE})
@Documented
@Import(CacheConfiguration.class)
@Configuration
public @interface EnableCache {

    // 缓存的名称 @Cacheable,@CachePut,@CacheEvict的value必须包含在这里面
    String[] value();

    // 缓存时间 默认30分钟
    long ttl() default 1000 * 60 * 30L;

    // 最长空闲时间 默认30分钟
    long maxIdleTime() default 1000 * 60 * 30L;
}